package com.shtel.bss.saas.core.data.common.entiry;

import com.shtel.bss.saas.core.data.common.entiry.repository.IBaseRepository;
import com.shtel.bss.saas.core.data.common.entiry.repository.RepositoryFactory;
import java.io.Serializable;

/**
 * @author xiezhiwei
 * @version Revision 1.0
 * @版权： 版权所有 (c) 2018
 * @创建日期： 2020/2/3 19:21
 * @功能说明：
 */
public abstract class IAbsBaseEntity<ID extends Serializable> implements IBaseEntity<ID> {
	public static IBaseRepository repository(Class<? extends IBaseEntity> clazz) {
		return RepositoryFactory.getRepository(clazz);
	}

	private IBaseRepository selfRepository() {
		return repository(this.getClass());
	}

	public void save() {
		selfRepository().save(this);
	}

	public void remove() {
		selfRepository().remove(this);
	}

	public void update() {
		selfRepository().update(this);
	}
}
